package cn.gorit.admin.controller;

import cn.gorit.admin.service.UserService;
import cn.gorit.common.enums.ResultEnums;
import cn.gorit.common.lang.Result;
import cn.gorit.entity.user.User;
import cn.gorit.mapper.user.UserMapper;
import cn.gorit.utils.Page;
import cn.gorit.utils.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.Arrays;
import java.util.List;

/**
 * @version v1.0
 * @Classname UserController
 * @Description RPC 调用 用户服务
 * @Author CodingGorit
 * @Created on 2021/4/16 0:17
 * @IDLE IntelliJ IDEA
 **/
@RestController
@RequestMapping("/api/v1/admin")
public class UserController {

    @Autowired
    private UserService userService;

    // 用户后台模块 分页获取，后台管理系统只能查看用户的数据  有问题
    @PostMapping("/back/user/page")
    public Result<Page<User>> getUserListByPage(@RequestBody Page<User> page) {
        String sortColumn = page.getSortColumn();
        if (StringUtils.isNotBlank(sortColumn)) {
            // 排序列不为空
            String[] sortColumns = {"gender", "register_date"};
            List<String> sortList = Arrays.asList(sortColumns);
            if (!sortList.contains(sortColumn.toLowerCase())) {
                return new Result<>(ResultEnums.PARAMS_ERROR.getCode(), "排序参数不合法！");
            }
        }
        page = userService.getByPage(page);
        return new Result<>(ResultEnums.QUERY_SUCCESS.getCode(),ResultEnums.QUERY_SUCCESS.getMsg(),page);
    }

    // 后台冻结用户的接口
    @PutMapping("/back/user/{id}/freeze/{deleted}")
    public Result<Object> freezeUser(@PathVariable("id") String id, @PathVariable("deleted") Integer deleted) {
        return userService.freezeUser(id,deleted);
    }


}
